This invention relates to computer systems and more particularly improved data storage systems for use in computer systems. More particularly, this invention relates to an improved memory controller which permits memory storage locations to be grouped in any manner required for the best execution of the program or to meet other objectives.
In the past, computer systems have provided for mapping out main memory such as by orienting banks of memory in logical main memory. However, the prior art was limited such as by only permitting an entire bank of memory to be mapped in one area of logical memory without permitting a portion of a memory bank to mapped in one location in logical memory. For example, the prior art devices did not permit a programmer to fill a hole in logical memory which was smaller than the physical capacity of a memory bank, or, to separate one memory bank two fill two separate holes in memory.
In addition, many prior art devices did not permit sections of main memory to be "turned off" or disabled to avoid unnecessarily refreshing portions of main memory which are not being used, and which will not likely be used in the near future. Also, many prior art devices did not allow sufficient flexibility to avoid faulty memory locations without causing the entire system to fail.
In other words, prior art devices did not allow the programmer to independently and arbitrarily group memory locations by simply defining the upper and lower boundary of a memory bank, or virtual memory bank, and manipulate or map this virtual memory bank in anyway desired for efficient operation of the computer system or to provide groups of memory locations for use by the program of operating system.